#pragma include_only_once
#ifndef __log_h
#define __log_h
#ifdef __cplusplus
extern "C" {
#endif

#ifdef NDEBUG
int do_nothing(const char *fmt, ...);
#define LOG 1?0:do_nothing
#define log_printf 1?0:do_nothing
#else
int log_printf(const char *fmt, ...);
extern unsigned logging;
#define LOG log_printf

extern int suppress_logging;

void trace_on(int, int);
void trace_off(void);
#endif

#ifdef __cplusplus
};
#endif
#endif
